package fuxi01_lombok_override_array_20250707;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor

/*
* 1. @Data
@Data 是 Lombok 最常用的注解之一，它是一个组合注解，包含以下功能：
@ToString：自动生成 toString() 方法，用于返回对象的字符串表示形式。
@EqualsAndHashCode：自动生成 equals() 和 hashCode() 方法，用于比较对象是否相等以及计算哈希值。
@Getter：为类中的所有字段自动生成 getter 方法。
@Setter：为类中的所有字段自动生成 setter 方法。
@RequiredArgsConstructor：为类中所有 final 字段和 @NonNull 字段生成一个构造函数。
使用 @Data 注解后，你不需要手动编写这些方法，Lombok 会在编译时自动生成。
***编译后，Lombok 会自动生成以下方法：***
getName() 和 setName(String name)
getAge() 和 setAge(int age)
toString()
equals(Object o) 和 hashCode()

* @NoArgsConstructor
@NoArgsConstructor 注解用于为类生成一个无参构造函数（默认构造函数）。这个构造函数不会初始化任何字段，字段值将保持其默认值（如 null 或 0）。
编译后，Lombok 会生成以下无参构造函数：
public User() {   }

* @AllArgsConstructor
@AllArgsConstructor 注解用于为类生成一个全参构造函数，即包含类中所有字段的构造函数。这个构造函数允许在创建对象时直接初始化所有字段
编译后，Lombok 会生成以下全参构造函数：
public User(String name, int age) {
    this.name = name;
    this.age = age;
}
* */

public class Users {
    public String username;
    public String userpwd;
    public int userage;
    public String usersex;
}
